package com.sun.personal.juc;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

/**
 * @author syh
 * @date 2021/7/6 14:15
 * 四大函数式接口
 */
public class FuntionDemo {

    public static void main(String[] args) {

        //函数式接口传入一个参数，获取返回值
        Function<String,Integer> function = new Function<String,Integer>() {
            @Override
            public Integer apply(String param) {
                return 1024;
            }
        };
        System.out.println(function.apply("abc"));



        //消费型接口  传入一个参数，但是没有返回值
        Consumer<Integer> consumer = new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) {
                System.out.println("消费性函数接口" + integer);
            }
        };
        consumer.accept(2222);


        //断定性函数接口  传入一个参数，返回一个boolean类型
        Predicate<Integer> predicate = new Predicate<Integer>() {
            @Override
            public boolean test(Integer integer) {
                return true;
            }
        };
        System.out.println(predicate.test(1));


        //供给型函数接口   没有参数，但是有返回值
        Supplier<Integer> supplier = new Supplier<Integer>() {
            @Override
            public Integer get() {
                return 2048;
            }
        };

        System.out.println(supplier.get());




    }





}

